Grafanaのデータソースとして指定しているAmazon OpenSearch Service(Elasticsearch 7.10)をOpenSearch 1.0にアップグレードしてみた
はじめに
こんにちは。大阪オフィスの林です。
Grafanaのデータソースとして指定したAmazon OpenSearch Service(Elasticsearch 7.10)
をAmazon OpenSearch Service(OpenSearch 1.0)
にアップグレードした際のグラフデータの表示について挙動を確認してみました。検証の環境は下記エントリで作成したものを使っていき、アップグレード前後でGrafanaで見えていたグラフデータの表示について挙動を見ていきたいと思います。
結論
- 現状、アップグレード後もGrafana側では特に設定変更等を必要とせずグラフ化出来ている。(ように見えている)
- ただし、OpenSearchの公式プラグインも用意されているのでアップグレード後はOpenSearchのプラグインを使って接続した方がベターと思われる。
やってみた
互換性モードを有効化してアップグレードした場合
互換性モードについて
互換性モード
についてはこちらをご確認ください。互換性モード
について簡単に説明させて頂くと、一部のElasticSearch OSSクライアントとプラグインは、お互いが接続する前にバージョンをチェックする仕様を持つものもあり、互換性モード
を有効にしてアップグレードをおこなうと、そういった仕様を持つ一部のクライアントやプラグインに対して、OpenSearchにアップグレードした後も、バージョンをElasticsearch 7.10
として報告するように設定することができます。上記のような仕様を持つクライアントおよびプラグインに対して、アップグレードによる不具合の抑制を支援する機能を互換性モード
と呼んでいるそうです。今回の検証ではアップグレード後の動作に影響してきそうな互換性モード
を有効化にした場合と無効化にした場合とで挙動を見ていこうと思います。(結論、有効化・無効化に関係なくアップグレード後も特に設定変更等を必要とせずグラフ化されました)
それではやっていきます。アップグレード前のドメインとしてAmazon OpenSearch Service(Elasticsearch 7.10)
を使っていきます。
Grafana側の設定は下記の通りで、作成済みのAmazon OpenSearch Service(Elasticsearch 7.10)
のエンドポイントを指定しています。
Amazon OpenSearch Service
に戻り、対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。
アップグレード先のバージョンに「OpenSearch 1.0」が表示されており、「互換性モードの有効化」にチェックが入っている状態で、オペレーションから「アップグレードの適格性の確認」を選択し「送信」を選択します。※「互換性モードの有効化」のチェックを外した状態の検証は後半でやっていきます。本手順では「アップグレードの適格性の確認」を実施してから「アップグレード」を行います。
ステータスが「アクティブ」になったことを確認し、「アップグレードステータス」のリンクを選択します。
同じ手順でアップグレードしています。対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。
「互換性モードの有効化」が選択された状態で、オペレーションから「アップグレード」を選択し「送信」を選択します。
暫く待ちます。※ミニマム(インスタンス:t3.small.search、EBS:10GiB、データノード数:1、専用マスターノード:0)で構成している環境で、完了まで約30分程度掛かりました。
アップグレード中に何回かログを記録してみましたが、引き続きログが可視化出来ているように見えます。
もう一度ログを記録してみましたが、引き続きログが可視化出来ているように見えます。
ドメインのステータスが「アクティブ」で、バージョンがAmazon OpenSearch Service(OpenSearch 1.0)
に変わっています。
特に設定は変更せず、ログを記録してみましたが、引き続きログが可視化出来ているように見えます。
インデックスのローテーション後に再度ログを記録してみましたが、引き続きログが可視化出来ているように見えます。
互換性モードを無効化してアップグレードした場合
次は「互換性モードの有効化」のチェックを外して動作を見てみたいと思います。
Grafana側の設定は先ほどと同様下記の通りで、作成済みのAmazon OpenSearch Service(Elasticsearch 7.10)
のエンドポイントを指定しています。
Amazon OpenSearch Service
に戻り、対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。
アップグレード先のバージョンに「OpenSearch 1.0」が表示されており、「互換性モードの有効化」にチェックが入っていない状態で、オペレーションから「アップグレードの適格性の確認」を選択し「送信」を選択します。
ステータスが「アクティブ」になったことを確認し、「アップグレードステータス」のリンクを選択します。
同じ手順でアップグレードしています。対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。
「互換性モードの有効化」のチェックを外した状態で、オペレーションから「アップグレード」を選択し「送信」を選択します。
アップグレード中に何回かログを記録してみましたが、引き続きログが可視化出来ているように見えます。
特に設定は変更せず、ログを記録してみましたが、引き続きログが可視化出来ているように見えます。
OpenSearchのプラグインを使って接続してみる
GrafanaのElasticsearchのプラグインでは、Amazon OpenSearch Service(Elasticsearch 7.10)
からAmazon OpenSearch Service(OpenSearch 1.0)
へアップグレードしても、特にGrafana側で設定変更する必要なく、アップグレード後もグラフ化が出来ました。ただ、OpenSearchにElasticsearchのプラグインで接続しているのは少々気になるので、最後にOpenSearchのプラグインを使ってアップグレード後のドメインに接続してグラフ化するところまで見て検証を終えたいと思います。
OpenSearchプラグインを読み込みながらGrafanaのDockerコンテナを起動します。grafana-opensearch-datasource
がOpenSearchのプラグインとなります。
docker run -d \ -p 3000:3000 \ --name=grafana \ -e "GF_INSTALL_PLUGINS=grafana-opensearch-datasource" \ grafana/grafana
左メニューの歯車マークから「Data sources」を選択します。
検索ボックスから「opensearch」を検索し「select」を選択します。
URLにAmazon OpenSearch ServiceのエンドポイントURLを入力し、環境に応じてIndex name
Time field name
Version
に環境に応じた値を入力/選択します。今回の検証ではIndex name
にawswaf*
、Time field name
にtimestamp
、Version
に1.0.x
を指定します。
画面を下部の「Save & test」を選択し、エラーとならないことを確認します。※エラーとなる場合、Amazon OpenSearch Serviceに接続できていないか、IndexやTimeStampのパラメータが誤っている可能性があります。
ダッシュボードを作成します。Data sourceにOpenSearch
を選択しグラフ化するデータを追加します。
グラフ化出来ました。上のグラフが、もともとElasticsearchのプラグインでアップグレード後のAmazon OpenSearch Service(OpenSearch 1.0)
に接続して表示しているグラフで、下のグラフがOpenSearch
のプラグインでアップグレード後のAmazon OpenSearch Service(OpenSearch 1.0)
に接続して表示しているグラフです。※同じ内容でグラフ化できています。
まとめ
今回検証した範囲ではAmazon OpenSearch Service(Elasticsearch 7.10)
からAmazon OpenSearch Service(OpenSearch 1.0)
へアップグレードしても、特にGrafana側で設定変更することなく、引き続きグラフ表示することが出来ました。ただし、使用している機能や設定等によっては影響が出る可能性ももちろんありますので、本エントリの内容は参考程度に受け取って頂き、アップグレード前の事前検証は十分に実施して頂ければと思います。
以上、大阪オフィスの林がお送りしました!